TWebBrowser a jeho obsah

Otázka od: David Kraina

7. 11. 2003 12:05

Dobry den,
 potreboval bych dostat obsah okna TWebBrowseru do bitmapy. Teoreticky by to
melo byt mozne, jelikoz i presto, ze jsou posuvniky, okno ke skrolovani bude
jiz nactene.
Zkousel jsem ruzne finty pres canvas, hdc, paintto aj., ale muj max.
vysledek byl prave ono okno s posuvniky.

S pozdravem

===================================================

David Kraina, DKx
-------------------------------
Vedouci vyvojarskeho tymu MX-3, programator

http://DKx.on.to
http://MX-3.w3.to

===================================================





----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)

Odpovedá: Alexandr Stefek

7. 11. 2003 12:05

> Dobry den,
> potreboval bych dostat obsah okna TWebBrowseru do bitmapy. Teoreticky by
to
> melo byt mozne, jelikoz i presto, ze jsou posuvniky, okno ke skrolovani
bude
> jiz nactene.
> Zkousel jsem ruzne finty pres canvas, hdc, paintto aj., ale muj max.
> vysledek byl prave ono okno s posuvniky.
>
Docela by mne zajimalo, jak se Ti podarilo pouzit paintto na kresleni do
bmp.
Kdysi jsem tento problem resil a dosel jsem k nasledujicim zaverum:
okno vlastni jiny proces a nelze proto pouzit napr. paintto (hdc je vztazeno
k procesu,
mimo nej neni platne). Resil jsem to naockovanim dll knihovny a spustenim
threadu
v procesu a zde volani paintto, dale preneseni bmp pres interproces
komunikaci.
Jde to, ale je otazka, zda to skutecne potrebuji.

Alexandr Stefek






----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)

Odpovedá: David Kraina

7. 11. 2003 12:37

> Docela by mne zajimalo, jak se Ti podarilo pouzit paintto na kresleni do
> bmp.
> Kdysi jsem tento problem resil a dosel jsem k nasledujicim zaverum:
> okno vlastni jiny proces a nelze proto pouzit napr. paintto (hdc je
vztazeno
> k procesu,
> mimo nej neni platne). Resil jsem to naockovanim dll knihovny a spustenim
> threadu
> v procesu a zde volani paintto, dale preneseni bmp pres interproces
> komunikaci.
> Jde to, ale je otazka, zda to skutecne potrebuji.

Kdo rika, ze se mi PaintTo podarilo ?!?

Dle tve odpovedi to proste pro bezne smrtelniky nejde.
Puvodne jsem zkousel dostat to z aktivniho okna IEXPLORE, ale marnost nad
marnost





----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)

Odpovedá: Petr Vones

7. 11. 2003 13:59

From: "David Kraina" <dkx@seznam.cz>
> potreboval bych dostat obsah okna TWebBrowseru do bitmapy. Teoreticky by to

Rekl bych ze to nejde, protoze nema zadnou metodu pro vykresleni do predaneho
kontextu.

Petr Vones





----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)

Odpovedá: Alexandr Stefek

7. 11. 2003 14:05

> > Docela by mne zajimalo, jak se Ti podarilo pouzit paintto na kresleni do
> > bmp.
> > Kdysi jsem tento problem resil a dosel jsem k nasledujicim zaverum:
> > okno vlastni jiny proces a nelze proto pouzit napr. paintto (hdc je
> vztazeno
> > k procesu,
> > mimo nej neni platne). Resil jsem to naockovanim dll knihovny a
spustenim
> > threadu
> > v procesu a zde volani paintto, dale preneseni bmp pres interproces
> > komunikaci.
> > Jde to, ale je otazka, zda to skutecne potrebuji.
>
> Kdo rika, ze se mi PaintTo podarilo ?!?
>
> Dle tve odpovedi to proste pro bezne smrtelniky nejde.
> Puvodne jsem zkousel dostat to z aktivniho okna IEXPLORE, ale marnost nad
> marnost
>
Uprime jsem rad, ze jsem tenkrat neco neprehledl. Faktem je, ze to neni
vubec
trivialni. Opravdu je nutne "naockovat proces". No a ty vysledky! Ale na bmp
to asi staci Ja jsem experimentoval s emf, ale neni to ono. Nejsem pysny na
to,
co jsem tenkrat spachtil.

Alexandr Stefek






----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)

Odpovedá: Ondrej Kelle

7. 11. 2003 14:35

> potreboval bych dostat obsah okna TWebBrowseru do bitmapy.

Nie som si isty, ci chces prave toto.
Najrychlesie to asi vyskusas s webbrows.dpr v Demos\CoolStuf. Pridal som si
novu akciu a button do toolbaru.

procedure TMainForm.ActionSaveBmpExecute(Sender: TObject);
var
  Bmp: TBitmap;
begin
  if SaveDialog.Execute then
  begin
    Bmp := TBitmap.Create;
    try
      Bmp.Width := WebBrowser1.Width;
      Bmp.Height := WebBrowser1.Height;
      OleCheck(OleDraw(WebBrowser1.Application, DVASPECT_CONTENT,
Bmp.Canvas.Handle, Rect(0, 0, Bmp.Width, Bmp.Height)));
      Bmp.SaveToFile(SaveDialog.FileName);
    finally
      Bmp.Free;
    end;
  end;
end;

(V podstate ide o to, ze TWebBrowser.Application implementuje IViewObject.)

Kresli to kopiu toho, co prave ten TWebBrowser zobrazuje. Tzn. viditelnu
cast dokumentu aj so scrollbarmi.

HTH
TOndrej




----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)

Odpovedá: Ondrej Kelle

8. 11. 2003 14:32

> potreboval bych dostat obsah okna TWebBrowseru do bitmapy.
> Teoreticky by to melo byt mozne, jelikoz i presto, ze jsou
> posuvniky, okno ke skrolovani bude jiz nactene.

Podla Spy++ tie skrolbary nie su standardne skrolbary, mam pocit, ze su
kreslene samotnym IE v ramci svojho okna.

Dalej vyzera to tak, ze IE si kresli vsetko podla potreby, zrejme vzdy iba
viditelnu cast. Dava to zmysel, pretoze napriklad alokovat bitmapu na nejaku
vecsiu stranku (20 x PgDn) je blbost.

V tom priklade, co som posielal, mi stacilo zavolat Hide; SetBounds(...) a
potom to OleDraw kresli celu stranku. Problem je skor, ako zistit rozmery
tej stranky (a co v pripade, ak je taka velka, ze tu bitmapu naraz ani
nenaalokujes).
GetScrollInfo nefunguje, ako som spominal, nie su to standardne skrolbary
(ani FlatSB).

Mozno by to slo posielanim klaves: Home - paint - PgDn - paint - PgDn...  
Skratka, same blbosti   nic rozumne ma nenapada.

sorry
TOndrej




----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)